home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 41
/
Amiga Format CD41 (1999-06)(Future Publishing)(GB)[!][issue 1999-07].iso
/
-seriously_amiga-
/
emulation
/
anes
/
tech
/
mappertrace.doc
next >
Wrap
Text File
|
1999-04-19
|
2KB
|
51 lines
Mapper trace
------------
Here is a small description of the "Mapper-trace" feature
that is implemented in A/NES v0.99.99.
Don't bother reading this unless you know exact what you're
doing.
Ever stumbled upon another rare-ROM with a really weird mapper-number
and which doesn't even work in any emulator?
Well then this feature is for you all NES-"hackers". :)
When A/NES detects a non-supported mapper number, this feature is
activated (if selected of course).
All writes between $8000-$FFFF(which MMC's usually write) are trapped
and saved into a special log-file (RAM:ANESdebug.trc currently).
This allows the user later to check what the game did before it
crashed (ROMs with unknown mapper numbers usually crash sooner or later).
Here is a short description of the debug-file (pro's only!):
The file is currently limited to 32-writes because logging all writes
could probably result in several megabytes of data in just a few
seconds (for ROMs that perform CHR-ROM swap several times/frame).
The file starts with a 16-byte header:
Offset: 0 - 8 = 'ANESTRACE' file identification
9 = This contains a version number that tells which
version of A/NES that created this file (currently 99).
10 = Mapper number
11 = Number of PRG-ROMs in current ROM.
12 = Number of CHR-ROMs in current ROM.
13 = Number of "illegal writes" saved (currently 32)
14 = Empty
15 = Empty
Then follows the data structure. Each "illegal write" between $8000-$FFF
consists of chunks of 8-bytes each, which looks like this:
Offset: 0 - 1 = Current scanline
2 - 3 = Which address?
4 - 6 = Empty
7 = Data to be written
The current scanline is stored because with it you could easily(?) detect
if there is a possible bank-swap in the middle of the screen (for changing
graphics for example) and it helps figuring out the MMC hardware.